#pragma once
#include <sys/epoll.h>
#include<EventLoop.hpp>
#include"listener.hpp"
#include<functional>
class EventLoop;
class Dispatch {
    public:
        Dispatch()
        {}
        void listendispatch(struct epoll_event events)
        {
            int fd=events.data.fd;
            int e=events.events;
            if(e&=EPOLLIN){
                //读事件,必定是监听事件，其他事件早已到worker线程处理
                 Loop->connections[fd]->Accept();
            }else if(e&=EPOLLOUT){
                //写事件
               
            }else{
                //错误事件
            }
            
        }
        void workerdispatch(struct epoll_event events){
            int fd=events.data.fd;
            int e=events.events;
            if(e&=EPOLLIN){
                //读事件
                
            }else if(e&=EPOLLOUT){
                //写事件
            }else{

            }
        }
        void setLoop(EventLoop* loop){
            this->Loop=loop;
        }
    private:
        
        EventLoop*Loop;
};